object TestArithmetic {

  def main(args: Array[String]): Unit = {

    /**
     * @ 3.1 算术运算符 */
    //（1）对于除号“/”，它的整数除和小数除是有区别的：整数之间做除法时，只保留整数部分而舍弃小数部分。
    var r1: Int = 10 / 3 // 3
    println("r1=" + r1)

    var r2: Double = 10 / 3 // 3.0
    println("r2=" + r2)

    var r3: Double = 10.0 / 3 // 3.3333
    println("r3=" + r3)
    println("r3=" + r3.formatted("%.2f")) // 含义：保留小数点2位，使用四舍五入

    //（2）对一个数取模a%b，和Java的取模规则一样。
    var r4 = 10 % 3 // 1
    println("r4=" + r4)


    // 测试：>、>=、<=、<、==、!=
    var a: Int = 2
    var b: Int = 1

    /**
     * @ 3.2 关系运算符（比较运算符） */
    println(a > b) // true
    println(a >= b) // true
    println(a <= b) // false
    println(a < b) // false
    println("a==b\t" + (a == b)) // false
    println(a != b) // true

    /**
     * Java：
     * ==      比较两个变量本身的值，即两个对象在内存中的首地址；
     * equals  比较字符串中所包含的内容是否相同。
     */
    //    public static void main (String[] args) {
    //
    //      String s1 = "abc";
    //      String s2 = new String("abc");
    //
    //      System.out.println(s1 == s2);
    //
    //      System.out.println(s1.equals(s2));
    //    }
    //    输出结果：
    //    false
    //    true
    /**
     * Scala
     * ：== 更加类似于Java中的equals，参照jd工具
     */
    //    def main(args: Array[String]): Unit = {
    //
    //      val s1 = "abc"
    //
    //      val s2 = new String("abc")
    //
    //      println(s1 == s2)
    //      println(s1.eq(s2))
    //    }
    //
    //    输出结果：
    //    true
    //    false
  }
}
